package com.library.Mapper;

import com.github.pagehelper.Page;
import com.library.pojo.Lend;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Mapper
public interface LendMapper {
    /**
     * 查询所有人的借书记录
     * @param bookName
     * @param begin
     * @param end
     * @return
     */
    Page<Lend> page(@Param("bookName") String bookName,
                    @Param("begin") LocalDate begin,
                    @Param("end") LocalDate end,
                    @Param("status")Integer status);

    /**
     * 借书
     * @param lend
     */

    void insert(Lend lend);

    /**
     * 用户查询自己的借书记录
     * @param bookName
     * @param begin
     * @param end
     * @param userId
     * @return
     */

    Page<Lend> pageForUser(@Param("bookName")String bookName,
                           @Param("begin")LocalDate begin,
                           @Param("end") LocalDate end,
                           @Param("userId") Long userId);

    @Select("select id from lend where book_name =#{bookName}")
    List<Long> getIdByBookName(String bookName);

    /**
     * 修改借阅表中的书名
     * @param newBookName
     * @param lendId
     */
    @Update("update lend set book_name=#{newBookName} where id = #{lendId}")
    void updateBookName(@Param("newBookName") String newBookName, @Param("lendId") Long lendId);

    /**
     * 是否已经归还
     * @param status
     * @param id
     */
    @Update("update lend set status=#{status} where id=#{id}")
    void isStatus(@Param("status") Integer status, @Param("id") Long id);
}
